// 状态管理
import { defineStore } from 'pinia'
import inventoryinApi from '../api/inventoryin'
import { ElMessage } from 'element-plus'

// 创建一个 Pinia 对象
export const useInventoryinStore = defineStore('inventoryin', {
  state: () => ({
    inventoryinList: [],
    supplierList: [],
    goodsOrderDetail: {}
  }),

  // 启用持久化
  persist: true,

  actions: {
    // 获取库存列表
    async getInventoryinList(params) {
      const res = await inventoryinApi.getInventoryinList(params)
      if (res.code === 200) {
        this.inventoryinList = res.data
      }
    },
    // 获取供应商列表
    async getSupplierList(params) {
      const res = await inventoryinApi.getSupplierList(params)
      if (res.code === 200) {
        this.supplierList = res.data
      }
    },
    // 获取订单详情
    async getGoodsOrderDetail(params) {
      const res = await inventoryinApi.getGoodsOrderDetail(params)
      if (res.code === 200) {
        this.goodsOrderDetail = res.data
      }
    },
    // 获取采购订单详情
    async GetInventoryinDetail(params) {
      const res = await inventoryinApi.GetInventoryinDetail(params)
      if (res.code === 200) {
        this.goodsOrderDetail = res.data
      }
    },
    // 新增库存
    async AddInventoryin(params) {
      try {
        const res = await inventoryinApi.AddInventoryin(params)
        // 接受code为0或200的响应作为成功
        if (res.code === 200 || res.code === 0) {
          ElMessage.success(res.msg || '新增库存成功')
          return res.data
        } else {
          ElMessage.error(res.msg || '新增库存失败')
          return null
        }
      } catch (error) {
        console.error('AddInventoryin API调用失败:', error)
        // 如果发生错误但数据已成功写入数据库，可能是响应格式问题
        // 这里可以记录错误但仍返回null，让前端根据业务逻辑处理
        return null
      }
    },
    // 获取用户列表
    async getUserList(params) {
      const res = await inventoryinApi.getUserList(params)
      if (res.code === 200) {
        this.userList = res.data
      }
    },
    // 获取用户姓名
    async GetUserName(params) {
      const res = await inventoryinApi.GetUserName(params)
      if (res.code === 200) {
        this.userName = res.data
      }
    },
    
    
  }
})